var viewUserModel = new function () {
    this.FirstName = ko.observable(data.UserInfo.FirstName).extend({ required: { message: "Tên trước là bắt buộc"} });
    this.LastName = ko.observable(data.UserInfo.LastName).extend({ required: { message: "Tên sau là bắt buộc"} });
    this.Email = ko.observable(data.UserInfo.Email).extend({ required: { message: 'Địa chỉ e-mail là bắt buộc'} }).extend({ pattern: {
        message: "Nhập địa chỉ e-mail hợp lệ",
        params: /^(([a-zA-Z0-9])+([a-zA-Z0-9_\.\-])+([a-zA-Z0-9]))+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
    }
    });
    this.Password = ko.observable().extend({ minLength: 6, maxLength: 20, required: { message: "Mật khẩu là bắt buộc"} }).extend({ pattern: {
        message: 'Mật khẩu không chứa ký tự đặc biệt',
        params: '^\s*([0-9a-zA-Z]+)\s*$'
    }
    });

    this.Submit = function () {
        if (viewUserModel.errors().length == 0) {
            $('form').submit();
        }
        this.errors.showAllMessages();
    }
}

viewUserModel.errors = ko.validation.group(viewUserModel);
ko.validation.rules.pattern.message = 'Invalid.';
ko.applyBindings(viewUserModel, document.getElementById("main"));